package com.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 课程预约表
 *
 * @TableName course_booking
 */
@TableName(value = "course_booking")
@Data
public class CourseBooking implements Serializable {
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
    /**
     * 预约ID
     */
    @TableId(value = "booking_id", type = IdType.AUTO)
    private Long bookingId;
    /**
     * 排课ID
     */
    @TableField(value = "schedule_id")
    private Long scheduleId;
    /**
     * 学生用户ID
     */
    @TableField(value = "student_id")
    private Long studentId;
    /**
     * 教师ID
     */
    @TableField(value = "teacher_id")
    private Long teacherId;
    /**
     * 课程ID
     */
    @TableField(value = "course_id")
    private Long courseId;
    /**
     * 预约时间
     */
    @TableField(value = "booking_time")
    private Date bookingTime;
    /**
     * 上课日期
     */
    @TableField(value = "class_date")
    private Date classDate;
    /**
     * 开始时间
     */
    @TableField(value = "start_time")
    private Date startTime;
    /**
     * 结束时间
     */
    @TableField(value = "end_time")
    private Date endTime;
    /**
     * 状态(0-待确认 1-已确认 2-已取消 3-已完成 4-已评价)
     */
    @TableField(value = "status")
    private Integer status;
    /**
     * 取消原因
     */
    @TableField(value = "cancel_reason")
    private String cancelReason;
    /**
     * 学生评价内容
     */
    @TableField(value = "student_comment")
    private String studentComment;
    /**
     * 学生评分(1-5分)
     */
    @TableField(value = "student_rating")
    private Integer studentRating;
    /**
     * 教师评价内容
     */
    @TableField(value = "teacher_comment")
    private String teacherComment;
    /**
     * 创建时间
     */
    @TableField(value = "created_time")
    private Date createdTime;
    /**
     * 更新时间
     */
    @TableField(value = "updated_time")
    private Date updatedTime;
}